//Operazione da eseguire per lanciare l'editor con amazon e redis insieme

exports.amazon_redis = function(db, options, titolo, time, cr, callback){
    //callback();
	db.listTables({}, 
        function(err, data){  
            for (var i=0; i<=data.TableNames.length; i++){
                if (data.TableNames[i] == options.db.amazon_dynamo_operations_table_name+"_"+titolo) {
                	//controllo lo stato
                    db.describeTable({ 
                        TableName: data.TableNames[i]
                    	}, 
                    	function(err, data){
                            if (data.Table.TableStatus == "ACTIVE"){
                                callback('editor');
                                /*db.scan({
                                    TableName: options.db.amazon_dynamo_snapshots_table_name+"_"+titolo
                                },function(err, data){
                                    console.warn(JSON.stringify(data.Count));
                                    if (data.Count == 0){
                                        console.warn('Tabella vuota....devo aspettare');
                                        setTimeout(function(){waitTableReady()},15000);
                                    }
                                    else {
                                        console.warn('Tabella piena si parte!!!');
                                        callback();
                                    }
                                });*/
                            }
                            else if (data.Table.TableStatus == "CREATING"){
                                console.warn('La tabella e\' CREATING ma NON devo aspettare');
                                /*setTimeout(function(){waitTableReady()},time);*/
                                callback('editor');
                            }
                        	//se la tabella è DELETING devo aspettare che venga cancellata per poi crearla
                            else if (data.Table.TableStatus == "DELETING") {
                                console.warn('la tabella e\' deleting DEVO aspettare');
                                //setTimeout(function(){waitTableReady()},10000);
                                callback('no-doc')
                        	}
                    	}
                    );
                    break;
                }
                else if (data.TableNames[i] == undefined) {
                    //callback();
                    cr.create(db, options, titolo, function() {
                    	//invoco la mia wait personale
                       /* setTimeout(function () {
                            db.describeTable({ 
                                TableName: options.db.amazon_dynamo_operations_table_name+'_'+titolo
        	                    }, function(err, data){
                                    if (data.Table.TableStatus == "ACTIVE"){
                                        console.warn('Tabelle ATTIVE 1');
                                    }
                                    else {
                                        waitTableReady();
                                    }
                                }
                            );
                        }, time);*/
                        console.warn('Processo di creazione iniziato');
                        callback('editor');
                    });
                }
            }
        }
    );

    /*function waitTableReady(){
        db.describeTable({ 
            TableName: options.db.amazon_dynamo_operations_table_name+'_'+titolo
        	}, function(err, data){
                if (data == null){
                    callback()
                    cr.create(db, options, titolo, function() {*/
                        /*//invoco la mia wait personale
                        setTimeout(function () {
                            db.describeTable({ 
                                TableName: options.db.amazon_dynamo_operations_table_name+'_'+titolo
                                }, function(err, data){
                                    if (data.Table.TableStatus == "ACTIVE"){
                                        console.warn('finalmente e\' attiva');
                                        db.scan({
                                            TableName: options.db.amazon_dynamo_snapshots_table_name+"_"+titolo
                                        },function(err, data){
                                            console.warn(JSON.stringify(data.Count));
                                            if (data.Count == 0){
                                                console.warn('Tabella vuota....devo aspettare');
                                                //DEVO CREARE UNA WAIT-GET PER QUESTA SITUAZIONE
                                            }
                                            else
                                                callback();
                                        });
                                    }
                                    else {
                                        waitTableReady();
                                    }
                                }
                            );
                        }, time);*/
                        /*console.warn('Processo di creazione iniziato dalla waitTableReady');
                        callback();
                    });
                }
                else {
                    if (data.Table.TableStatus == "ACTIVE"){
                        console.warn('Tabelle ATTIVE dentro la waitTableReady');
                        db.scan({
                            TableName: options.db.amazon_dynamo_snapshots_table_name+"_"+titolo
                        },function(err, data){
                            console.warn(JSON.stringify(data.Count));
                            if (data.Count == 0){
                                console.warn('Tabella vuota....devo aspettare sono nella wait');
                                waitTableReady()
                            }
                            else {
                                console.warn('Tabella piena si parte!!!');
                                callback();
                            }
                        });
                    }
                    else {
                        waitTableReady();
                    }
                }
            }
        );
    };
    function wait_get(){

    };*/
}